Incremental Global Compilation of Prolog with the Vienna Abstract Machine
نویسندگان
چکیده
The Vienna Abstract Machine (VAM) is an abstract machine which has been designed to eliminate some weaknesses of the Warren Abstract Machine (WAM). Diierent versions of the VAM are used for diierent purposes. The VAM 2P is well suited for interpretation, the VAM 1P is aimed for native code generation. The VAM 2P has been modiied to the VAM AI , a concept suited for abstract interpretation. Analysis with the VAM AI is so fast that it is feasible to support both, global analysis and database updates with assert and retract. We present an incremental compiler based on the VAM 1P and the VAM AI. A preliminary evaluation of our compiler shows that the generated code competes with the best existing compilers whereas the compile time is comparable to that of simple bytecode translators.
منابع مشابه
A Progress Report on Incremental Global Compilationof
Traditional native code generating Prolog compilers with global analysis compile programs as a whole and do not support the data base builtin-predicates assert and retract. In this paper we present a scheme to both enable global analysis and incremental compilation. This incremental compiler is based on the Vienna Abstract Machine (VAM). A version of the VAM, the VAM AI , is used as an abstract...
متن کاملAn Executable Intermediate Representation for Incremental Global Compilation of Prolog
The programming language Prolog has built-in predicates which enable the modiication of a program at runtime. This makes the global compilation of Pro-log programs a complex task. This paper presents an intermediate representation which enables fast incre-mental global compilation of Prolog. This intermediate representation is based on the Vienna Abstract Machine (VAM) with its two versions, th...
متن کاملThe Vam Ai { an Abstract Machine for Incremental Global Dataaow Analysis of Prolog
A commonly used technique for global ow analysis of Prolog programs is abstract interpretation. Until now nearly all abstract interpretation systems for Prolog are research prototypes and very slow. These systems are not suitable for the integration in Prolog compilers. So we developed the VAMAI, an abstract machine for the abstract interpretation of Prolog. The Vienna Abstract Machine (VAM) is...
متن کاملIncremental Flow Analysis
interpretation is a technique for ow analysis widely used in the area of logic programming. Until now it has been used only for the global compilation of Prolog programs. But the programming language Prolog enables the programmer to change the program during run time using the built-in predicates assert and retract. To support the generation of eecient code for programs using these dynamic data...
متن کاملNative Code Compilation in SICStus Prolog
SICStus Prolog is a sequential Prolog implementation built around a version of the Warren Abstract Machine (WAM). For several years, SICStus has supported WAM-to-native code compilation for Sun workstations. This old scheme is neither as portable nor as open to experiments as would be desirable. With the support of my colleagues in the SICStus group, I have developed a new scheme that is more o...
متن کامل